/*
 * AtividadeComplementar.java
 * 
 * Projeto: Kruskal - SRAC
 * LEDS - Laboratório de Engenharia e Desenvolvimento de Software
 * IFES - Instituto Federal do Espírito Santo - Campus Serra.
 */
package srac.controleatividades.cdp;

import javax.persistence.*;
import util.utilitarioPersistencia.ObjetoPersistente;

@Entity
public class AtividadeComplementar extends ObjetoPersistente {

    private Integer creditosRequeridos;
    private Integer creditosObtidos;
    private byte[] arquivo;
    private String observacao;

    private String descricao;
    private Etapa etapa;
    private TipoAtividade tipoAtividade;
    private Aluno aluno;
    private StatusAtividadeComplementar statusAtividadeComplementar;

    public AtividadeComplementar() {
        
    }

    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(nullable = true)
    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }

    public byte[] getArquivo() {
        return arquivo;
    }

    public void setArquivo(byte[] arquivo) {
        this.arquivo = arquivo;
    }

    public Integer getCreditosObtidos() {
        return creditosObtidos;
    }

    public void setCreditosObtidos(Integer creditosObtidos) {
        this.creditosObtidos = creditosObtidos;
    }

    public Integer getCreditosRequeridos() {
        return creditosRequeridos;
    }

    public void setCreditosRequeridos(Integer creditosRequeridos) {
        this.creditosRequeridos = creditosRequeridos;
    }

    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(nullable = true)
    public Etapa getEtapa() {
        return etapa;
    }

    public void setEtapa(Etapa etapa) {
        this.etapa = etapa;
    }

    @Column(length = 100000)
    public String getObservacao() {
        return observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }
    

    @Enumerated(EnumType.STRING)
    public StatusAtividadeComplementar getStatusAtividadeComplementar() {
        return statusAtividadeComplementar;
    }

    public void setStatusAtividadeComplementar(StatusAtividadeComplementar statusAtividadeComplementar) {
        this.statusAtividadeComplementar = statusAtividadeComplementar;
    }

    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(nullable = true)
    public TipoAtividade getTipoAtividade() {
        return tipoAtividade;
    }

    public void setTipoAtividade(TipoAtividade tipoAtividade) {
        this.tipoAtividade = tipoAtividade;
    }

    @Override
    public String toString() {
        String result ="";
        result+= tipoAtividade.getCategoria()+" - "+descricao+" (Créditos: "+creditosRequeridos.toString()+")";
        return result;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
}